[APACHE DOCUMENTATION]

Amiga Apache HTTP Server Version 1.3

Starting Apache

Invoking Apache

The httpd program is usually run as a daemon which executes continuously, handling requests. It is possible to invoke Apache by the Internet daemon inetd each time a connection to the HTTP service is made (use the ServerType directive) but this is not recommended.

However, if you still want this, you must add several lines to Amitcp or edit your configuration in Miami.

Amitcp: Add the following in the db/inetd.conf:

	http      stream tcp nowait root apache:httpd

Miami : Add the following to the database/inetd menu: Service: http Socket: stream Protocol: tcp Wait: nowait User: root Server: apache:httpd



If you start Apache from Inetd, you don't need the 2 scripts below.

starting Apache

There are 2 scripts provided in the binary distribution of apache, called 'starthttpd' and 'stophttpd'. Apache need about a minute to shutdown all childprocesses, so wait before closing down Amitcp or Miami.

Here is the source in case you did not download the binary distribution:

 
/* starthttpd 1.0 */
    say 'Starting the httpd server ...' 
	ADDRESS COMMAND 'run >T:httpd.pid httpd'

/* stophttpd 1.0 */ opened = OPEN( pidfile, 'T:httpd.pid', 'R' ) IF opened == 1 THEN DO DO WHILE ~EOF( pidfile ) line = READLN( pidfile ) line = SUBSTR( line, 6 ) pid = STRIP( line, 'T', ']' ) say 'Shutting down httpd server ...' ADDRESS COMMAND 'Break' '>NIL:' pid 'C' LEAVE END CALL CLOSE( pidfile ) ADDRESS COMMAND 'C:Delete' '>NIL:' 'T:httpd.pid' END ELSE DO SAY 'No process ID for httpd found.' END



If you need any commandline options, as described below, in the starthttpd script, just put them right after the httpd command. For example:
	ADDRESS COMMAND 'run >T:httpd.pid httpd -f /configs/httpd.conf'



Another way to start httpd is from a shell. Just open a shell, cd to APACHE: and type: httpd [options].

Command line options

The following options are recognized on the httpd command line:
-d serverroot
Set the initial value for the ServerRoot variable to serverroot. This can be overridden by the ServerRoot command in the configuration file. The default is apache:.
-f config
Execute the commands in the file config on startup. If config does not begin with a /, then it is taken to be a path relative to the ServerRoot. The default is conf/httpd.conf.
-X
Run in single-process mode, for internal debugging purposes only; the daemon does not detach from the terminal or fork any children. Do NOT use this mode to provide ordinary web service.
-v
Print the version of httpd and its build date, and then exit.
-V
Print the base version of httpd, its sub-version if defined, its build date, and a list of compile time settings which influence the behavior and performance of the apache server (e.g., -D USE_MMAP_FILES), then exit.
-h
Give a list of directives together with expected arguments and places where the directive is valid. (New in Apache 1.2)
-l
Give a list of all modules compiled into the server.
-?
Print a list of the httpd options, and then exit.

Configuration files

The server will read three files for configuration directives. Any directive may appear in any of these files. The the names of these files are taken to be relative to the server root; this is set by the ServerRoot directive, or the -d command line flag. Conventionally, the files are:
conf/httpd.conf
Contains directives that control the operation of the server daemon. The filename may be overridden with the -f command line flag.
conf/srm.conf
Contains directives that control the specification of documents that the server can provide to clients. The filename may be overridden with the ResourceConfig directive.
conf/access.conf
Contains directives that control access to documents. The filename may be overridden with the AccessConfig directive.
However, these conventions need not be adhered to.

The server also reads a file containing mime document types; the filename is set by the TypesConfig directive, and is conf/mime.types by default.

Log files

security warning

Anyone who can write to the directory where Apache is writing a log file can almost certainly gain access to the uid that the server is started as, which is normally root. Do NOT give people write access to the directory the logs are stored in without being aware of the consequences; see the security tips document for details.

pid file

On daemon startup, it saves the process id of the parent httpd process to the file logs/httpd.pid. This filename can be changed with the PidFile directive. The process-id is for use by the administrator in restarting and terminating the daemon; A SIGHUP or SIGUSR1 signal causes the daemon to re-read its configuration files and a SIGTERM signal causes it to die gracefully. For more information see the Stopping and Restarting page.

If the process dies (or is killed) abnormally, then it will be necessary to kill the children httpd processes. It is possible that you need to reset the Amiga if you don't succeed in killing the children in a normal way.

Error log

The server will log error messages to a log file, logs/error_log by default. The filename can be set using the ErrorLog directive; different error logs can be set for different virtual hosts.

Transfer log

The server will typically log each request to a transfer file, logs/access_log by default. The filename can be set using a TransferLog directive; different transfer logs can be set for different virtual hosts.

Apache HTTP Server Version 1.3

Index